As portable devices become more compact, and the amount of information to be processed and stored increases, it has become a significant challenge to design a user interface that allows users to easily interact with the device. This is unfortunate since the user interface is the gateway through which users receive not only content but also responses to user actions or behaviors, including user attempts to access a device's features or tools. Some portable electronic devices (e.g., mobile phones) have resorted to adding more pushbuttons, overloading the functions of pushbuttons, or using complex menu systems to allow a user to access, store and manipulate functions or data. These conventional user interfaces often result in complicated key sequences and menu hierarchies that must be memorized by the user.
Many conventional user interfaces, such as those that include physical pushbuttons, are also inflexible. This is unfortunate because the inflexibility may prevent a user interface from being configured and/or adapted by either an application running on the portable device or by users. When coupled with the time consuming requirement to memorize multiple key sequences and/or menu hierarchies, such inflexibility is frustrating to many users.
Some conventional user interfaces can be configured by users, thereby allowing at least partial customization. Unfortunately, the process of modifying such conventional user interfaces is often as cumbersome and complicated as the use of the conventional user interface itself. In particular, the required behaviors during configuration of such conventional user interfaces are often counter intuitive and the corresponding indicators guiding user actions are often difficult to understand. These challenges are often a source of additional frustration for users.